跳到主要内容

解决 husky8.0 钩子不触发

如果您的提交没有触发预期的钩子,以下是一些建议和步骤,您可以按照这些步骤进行故障排查:

  1. 确保钩子文件存在: 首先,确保您的项目中的 .husky 目录存在,并且其中包含了您期望执行的钩子文件(例如 pre-commitcommit-msg 等)。

  2. 检查钩子文件的权限: Git钩子需要有执行权限。您可以使用以下命令为钩子文件添加执行权限:

    chmod +x .husky/<hook-name>

    例如,为 pre-commit 钩子添加执行权限:

    chmod +x .husky/pre-commit
  3. 确保钩子文件的内容是正确的: 打开钩子文件并检查其内容。确保它包含了正确的脚本,并且在文件的开头有 husky 的引导代码。

  4. 检查Git钩子目录: 使用以下命令查看Git钩子的目录:

    git rev-parse --git-dir

    这应该返回 .git 目录的路径。然后,您可以检查该目录下的 hooks 子目录,确保它包含了指向您项目中 .husky 目录的符号链接。

  5. 尝试手动运行钩子: 您可以尝试手动运行钩子文件,看看是否有任何错误消息:

    sh .husky/pre-commit
  6. 检查core.hooksPath配置: 如果您之前更改过Git的钩子路径配置,这可能会影响husky。您可以使用以下命令检查:

    git config core.hooksPath

    如果这返回了一个路径,确保它指向您项目中的 .husky 目录。

  7. 重新安装husky: 有时,重新安装husky并重新设置钩子可能会解决问题:

    npx husky install
  8. 查看其他可能的冲突: 如果您的项目中使用了其他的Git钩子工具,如pre-commitcommitizen,确保它们与husky没有冲突。